package io.renren.controller;


import io.renren.annotation.Login;
import io.renren.annotation.LoginUser;
import io.renren.common.utils.R;
import io.renren.entity.StudentEntity;
import io.renren.service.SchoolService;
import io.renren.service.StudentService;
import io.renren.util.ApiBaseAction;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * 学校模块
 */
@RestController
@RequestMapping("/api/school")
public class ApiSchoolController extends ApiBaseAction {

    @Autowired
    private StudentService studentService;
    @Autowired
    private SchoolService schoolService;


    /***
     * 获取学校信息
     * @param schoolId 学校id
     * @return R
     */
    @PostMapping("getSchoolInfo")
    @ApiOperation("获取学校信息")
    public R getSchoolInfo(@RequestParam("schoolId") Integer schoolId) {
        return studentService.getSchoolInfo(schoolId);
    }

    /**
     * 获取学校列表
     *
     * @return R
     */
    @PostMapping("getSchoolList")
    @ApiOperation("获取学校列表")
    public R getSchoolList() {
        return studentService.getSchoolList();
    }


    /**
     * 小程序
     * 获取学校详情
     *
     * @param schoolId  学校id
     * @param longitude 地理经度
     * @param latitude  地理纬度
     * @return R
     */
    @PostMapping("getSchoolDetail")
    @ApiOperation("获取学校详情")
    public R getSchoolDetail(@RequestParam("schoolId") Integer schoolId,
                             @RequestParam("longitude") double longitude,
                             @RequestParam("latitude") double latitude) {
        return schoolService.getSchoolDetail(schoolId, longitude, latitude);
    }

    /***
     * 获取学校评价
     * @param schoolId 学校id
     * @return R
     */
    @PostMapping("getSchoolEvaluate")
    @ApiOperation("获取学校评价")
    public R getSchoolEvaluate(@RequestParam("schoolId") Integer schoolId) {
        return schoolService.getSchoolEvaluate(schoolId);
    }

    /***
     * 小程序
     * 获取须知
     * @param type 1须知 2关于我们
     * @return R
     */
    @PostMapping("getNotice")
    @ApiOperation("获取须知")
    public R getNotice(@RequestParam("type") Integer type) {
        return schoolService.getNotice(type);
    }


    /***
     * 小程序
     * 获取城市
     * @return R
     */
    @PostMapping("getCity")
    @ApiOperation("获取城市")
    public R getCity() {
        return schoolService.getCity();
    }


    /***
     * 小程序
     * 获取热门值学校
     * @param city 城市
     * @return
     */
    @PostMapping("getHotCity")
    @ApiOperation("获取热门值学校")
    public R getHotCity(@RequestParam("city") String city) {
        return schoolService.getHotCity(city);
    }

    /***
     *  小程序
     *  根据筛选条件选出学校
     * @param student 学员
     * @param city 城市名
     * @param location 位置距离(1顺序排序(近) 2倒序(远))
     * @param evaluate 评价星（1顺序 少 2倒序 多）
     * @param type 科目类别 1人社 2交通 3安监
     * @param price 科目价格最低价(1顺序价格低 2倒序价格高)
     * @param schoolName 学校名称
     * @param longitude 地理经度
     * @param latitude 地理纬度
     * @return
     */
    @Login
    @PostMapping("getSchool")
    @ApiOperation("根据筛选条件选出学校")
    public R getSchool(@LoginUser StudentEntity student,
                       @RequestParam("city") String city,
                       Integer location,
                       Integer evaluate,
                       Integer type,
                       Integer price,
                       String schoolName,
                       double longitude,
                       double latitude) {
        return schoolService.getSchool(city, location, evaluate, type,
                price, schoolName, student.getUserId(), longitude, latitude);
    }


}
